import { request } from '@umijs/max';

/**
 *
 * @param data 管理员登录
 * @returns
 */
export const login = (data: any) =>
  request('/auth/admin_login', {
    method: 'POST',
    data,
  });

/**
 *
 * @returns 获取管理员信息
 */
export const getUserInfo = () => request('/admin/managers/info');

/**
 *
 * @param params 获取医院信息
 * @returns
 */
export const getHospitals = async (
  // 第一个参数 params 查询表单和 params 参数的结合
  // 第一个参数中一定会有 pageSize 和  current ，这两个参数是 antd 的规范
  params: any & {
    pageSize: number;
    current: number;
  },
) => {
  // 这里需要返回一个 Promise,在返回之前你可以进行数据转化
  // 如果需要转化参数可以在这里进行修改
  const msg = await request('/admin/hospitals', {
    params: { page: params.current, per: params.pageSize, name: params.name },
  });
  console.group('当前医院列表信息');
  console.log(msg);
  console.groupEnd();
  return {
    data: msg.data.list.map((v: any) => {
      if (!v.address) v.address = '暂无地址信息';
      if (!v.phone) v.phone = '暂无联系电话';
      return v;
    }),
    // success 请返回 true，
    // 不然 table 会停止解析数据，即使有数据
    success: msg.success,
    // 不传会使用 data 的长度，如果是分页一定要传
    total: msg.data.total,
  };
};

/**
 * 新增医院
 * @param data
 * @returns
 */
export const addHospital = (data: any) => {
  if (data.image.length === 0) data.image = '';

  return request('/admin/hospitals', {
    method: 'POST',
    data: { ...data, image: data.image ? data.image[0]?.response.data : '' },
  });
};

/**
 *
 * @param id 删除医院
 * @returns
 */
export const delHospital = (id: string) => request('/admin/hospitals/' + id, { method: 'DELETE' });

/**
 *
 * @param ids 删除多个医院
 * @returns
 */
export const delHospitals = (ids: number[]) =>
  request('/admin/hospitals/remove_many', { method: 'DELETE', params: { ids: ids.join(',') } });

export const changeHospital = (id: any, data: any) => {
  if (data.image.length === 0) data.image = '';

  return request('/admin/hospitals/' + id, {
    method: 'PATCH',
    data: { ...data, image: data.image ? data.image[0]?.response.data : '' },
  });
};
